70 PRINT:COLOR COLA(2),0:PRINT" Press ";:COLOR COLB(2),COLA(9):PRINT "L";:COLOR COLA(2),0:PRINT " to load or ";
75 COLOR COLB(2),COLA(9):PRINT "Enter ";CHR$(17);CHR$(196);CHR$(217);:COLOR COLA(2),0: PRINT " to run ";:COLOR 0,COLA(3):PRINT"highlighted";:COLOR COLA(2),0:PRINT"-lettered program,"
80 PRINT TAB(10);"or ";:COLOR COLB(2),COLA(9):PRINT CHR$(24);" ";CHR$(25);" ";CHR$(26);" ";CHR$(27);:COLOR COLA(2),0:PRINT " key to move to a different program name."
85 PRINT TAB(23);"Press ";:COLOR 0,COLA(3):PRINT "Esc";:COLOR COLA(2),0:PRINT " to return to DOS."
90 XO=POS(0):YO=CSRLIN
100 I$="":WHILE I$="":I$=INKEY$:GOSUB 1000:WEND
120 I=ASC(I$)
130 IF I=66 OR I=98 THEN CLS:END
140 IF I=27 THEN COLOR 7,0:CLS:SYSTEM
150 IF LEN(I$)=1 THEN 210
160 C=ASC(RIGHT$(I$,1))
170 IF C=75 THEN GOSUB 230:GOTO 100 'curser left
180 IF C=77 THEN GOSUB 240:GOTO 100 'curser right
190 IF C=80 THEN GOSUB 250:GOTO 100 'curser down
200 IF C=72 THEN GOSUB 260:GOTO 100 'curser up
210 IF I$="L" OR I$="l" THEN CLOSE : COLOR ,,0 :CLS : KEY ON : LOAD F$ ELSE IF I=13 THEN CLOSE : CLS : RUN F$
220 SOUND 400,0.5:GOTO 100
230 IF X>W THEN LOCATE Y,X:COLOR 7,0:PRINT F$;:X=X-W:GOSUB 50:GOTO 270 ELSE GOSUB 540 : RETURN
240 IF X<54 THEN LOCATE Y,X:COLOR 7,0:PRINT F$;:X=X+W:GOSUB 50:GOTO 270 ELSE GOSUB 380: RETURN
250 IF Y<YO-(4+YY) THEN LOCATE Y,X:COLOR 7,0:PRINT F$;:Y=Y+1:GOSUB 50:GOTO 270 ELSE GOSUB 540 : RETURN
260 IF Y>YY THEN LOCATE Y,X:COLOR 7,0:PRINT F$;:Y=Y-1:GOSUB 50:GOTO 270 ELSE BEEP : RETURN
270 IF LEFT$(F$,1)<>SPACE$(1) AND ASC(F$)<> 255 THEN RETURN
280 GOSUB 310
290 IF C=80 THEN C=72 : GOTO 260
300 IF C=77 THEN C=75 : GOTO 230
310 'Phasor sound
320 FOR T=1 TO 3
330 FOR F=1800 TO 300 STEP - 100
340 SOUND F, 0.1
350 NEXT
360 NEXT
370 RETURN
380 'bird sound
390 FOR K=1 TO 2
400 FOR J=1 TO 2
410 FOR I=2600 TO 2200 STEP -50
420 SOUND I, 0.15
430 NEXT
440 NEXT
450 D1=300:GOSUB 610
460 NEXT
470 D1=400:GOSUB 610
480 FOR J=1 TO 4
490 FOR I=2200 TO 2900 STEP 50
500 SOUND I, 0.1
510 NEXT
520 NEXT
530 RETURN
540 'alarm sound
550 FOR T=1 TO 3
560 FOR F=500 TO 1400 STEP 20
570 SOUND F, 0.35
580 NEXT
590 NEXT
600 RETURN
610 FOR D=1 TO D1:NEXT:RETURN
700 '***** Subroutine to determine if color is to be displayed. See line 25
710 '
720 FOR J=0 TO 20:COLA(J)=7:COLB(J)=0:NEXT
730 IF C$="C" THEN FOR J=0 TO 20:COLA(J)=J:COLB(J)=J:NEXT
740 RETURN
1000 ' * Subroutine to check num lock status *
1010 IF CAPSLAST%=2 THEN LOCATE CAPSPOSX%,CAPSPOSY%-5,0:COLOR COLB(2),COLA(9):PRINT "CAPS:";:LOCATE NUMPOSX%,NUMPOSY%-4:PRINT "NUM:";:COLOR 7,0
1015 PTIME$=DATE$+" "+TIME$+" AM":T=VAL(LEFT$(TIME$,2)):IF T>12 THEN RSET P$=MID$(STR$(T-12),2):MID$(PTIME$,14,2)=P$:MID$(PTIME$,23,2)="PM"
1040 POSY%=POS(0) ' determine present cursor position in line
1050 DEF SEG=64 ' )
1060 KB1%=PEEK(23) ' ) peek to determine keyboard status
1070 KB2%=PEEK(24) ' )
1080 DEF SEG ' )
1090 IF (KB1% AND 64)=64 THEN CAPSLOCK%=1 ELSE CAPSLOCK%=0 ' check status of Caps Lock key
1100 IF (KB1% AND 1)=1 OR (KB1% AND 2)=2 THEN IF CAPSLOCK%=0 THEN CAPSLOCK%=1 ELSE CAPSLOCK%=0 'see if either shift key is depressed
1110 IF (KB1% AND 32)=32 THEN NUMLOCK%=1 ELSE NUMLOCK%=0 ' check status of Num Llock key
1120 IF (KB1% AND 1)=1 OR (KB1% AND 2)=2 THEN IF NUMLOCK%=0 THEN NUMLOCK%=1 ELSE NUMLOCK%=0 ' see if either shift key is depressed
1130 IF CAPSLAST%<>CAPSLOCK% THEN LOCATE CAPSPOSX%,CAPSPOSY%,0:COLOR 0,COLA(3):IF CAPSLOCK%=1 THEN PRINT CHR$(24); ELSE PRINT CHR$(25);'up or down arrow for Caps status
1140 IF NUMLAST%<>NUMLOCK% THEN LOCATE NUMPOSX%,NUMPOSY%,0:COLOR 0,COLA(3):IF NUMLOCK%=1 THEN PRINT CHR$(24); ELSE PRINT CHR$(25);'up arrow or down arrow for Num status
1150 NUMLAST%=NUMLOCK%
1160 CAPSLAST%=CAPSLOCK%
1170 COLOR 7,0
1180 LOCATE POSX%,POSY%,1 're-locate and turn on the cursor